Security News
Cloudflare Adds Security.txt Setup Wizard
Cloudflare has launched a setup wizard allowing users to easily create and manage a security.txt file for vulnerability disclosure on their websites.
eslint-visitor-keys
Advanced tools
The eslint-visitor-keys package is designed to provide a list of keys that ESLint uses to visit properties in an Abstract Syntax Tree (AST). This is particularly useful for developers working on tools that need to manipulate or analyze JavaScript code, as it helps in navigating the structure of the code in a predictable manner.
Retrieving Visitor Keys
This feature allows you to retrieve a comprehensive list of visitor keys used by ESLint. These keys represent the properties of AST nodes that ESLint will traverse. The code sample demonstrates how to import and log the visitor keys.
const visitorKeys = require('eslint-visitor-keys').KEYS;
console.log(visitorKeys);
Union With Custom Keys
This feature enables the combination of ESLint's default visitor keys with custom keys defined by the user. This is useful for tools that work with custom syntax or AST nodes not covered by the default set. The code sample shows how to merge custom keys with the default ones.
const { unionWith } = require('eslint-visitor-keys');
const customKeys = { CustomNode: ['property'] };
const combinedKeys = unionWith(customKeys);
console.log(combinedKeys);
Estraverse is a package for traversing JavaScript ASTs. It provides similar functionality to eslint-visitor-keys by allowing the traversal of AST nodes. However, estraverse focuses more on the traversal mechanism itself, including entering and leaving nodes, whereas eslint-visitor-keys primarily provides a list of keys for traversal.
Acorn-walk is a syntax tree walker for the acorn AST format. Similar to eslint-visitor-keys, it aids in the navigation and analysis of ASTs. The key difference is that acorn-walk is tied to the acorn parser's AST format and provides walker functions for different node types, while eslint-visitor-keys offers a more generalized set of keys for any tool that works with JavaScript ASTs.
Constants and utilities about visitor keys to traverse AST.
Use npm to install.
$ npm install eslint-visitor-keys
const evk = require("eslint-visitor-keys")
type:
{ [type: string]: string[] | undefined }
Visitor keys. This keys are frozen.
This is an object. Keys are the type of ESTree nodes. Their values are an array of property names which have child nodes.
For example:
console.log(evk.KEYS.AssignmentExpression) // → ["left", "right"]
type:
(node: object) => string[]
Get the visitor keys of a given AST node.
This is similar to Object.keys(node)
of ES Standard, but some keys are excluded: parent
, leadingComments
, trailingComments
, and names which start with _
.
This will be used to traverse unknown nodes.
For example:
const node = {
type: "AssignmentExpression",
left: { type: "Identifier", name: "foo" },
right: { type: "Literal", value: 0 }
}
console.log(evk.getKeys(node)) // → ["type", "left", "right"]
type:
(additionalKeys: object) => { [type: string]: string[] | undefined }
Make the union set with evk.KEYS
and the given keys.
additionalKeys
is at first, then evk.KEYS
is concatenated after that.For example:
console.log(evk.unionWith({
MethodDefinition: ["decorators"]
})) // → { ..., MethodDefinition: ["decorators", "key", "value"], ... }
See GitHub releases.
Welcome. See ESLint contribution guidelines.
npm test
runs tests and measures code coverage.npm run lint
checks source codes with ESLint.npm run coverage
opens the code coverage report of the previous test with your default browser.npm run release
publishes this package to npm registory.FAQs
Constants and utilities about visitor keys to traverse AST.
The npm package eslint-visitor-keys receives a total of 46,300,948 weekly downloads. As such, eslint-visitor-keys popularity was classified as popular.
We found that eslint-visitor-keys demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Cloudflare has launched a setup wizard allowing users to easily create and manage a security.txt file for vulnerability disclosure on their websites.
Security News
The Socket Research team breaks down a malicious npm package targeting the legitimate DOMPurify library. It uses obfuscated code to hide that it is exfiltrating browser and crypto wallet data.
Security News
ENISA’s 2024 report highlights the EU’s top cybersecurity threats, including rising DDoS attacks, ransomware, supply chain vulnerabilities, and weaponized AI.